package com.zang.greedy;

/**
 * @author ZVerify
 * @since 2022/11/20 10:11
 * @see <a href="https://leetcode.cn/problems/maximum-subarray/"> </a>
 **/
public class 最大子数组和 {

    public int maxSubArray(int[] nums) {

        if (nums.length == 1) return nums[0];

        int sum = 0;
        // 最大值一开始为第一个数
        int result = nums[0];

        for (int i = 0; i < nums.length; i++) {
            // 这里不使用>＝号是因为如果为第一个数sum没有值为0，要把第一个值给sum
            if (sum > 0) sum += nums[i];
            else  sum = nums[i];
            result = Math.max(result, sum);

        }
        return result;
    }
}
